package pers.dawnyang.modular.system.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import pers.dawnyang.common.domain.entity.SysUser;
import pers.dawnyang.modular.system.domain.request.user.UserReqR;
import pers.dawnyang.modular.system.domain.response.user.UserDeptRes;
import pers.dawnyang.modular.system.domain.response.user.UserExcelRes;
import pers.dawnyang.modular.system.domain.response.user.UserRes;
import pers.dawnyang.modular.system.domain.response.user.UserRoleRes;

/**
 * TODO
 * 
 * @author yangyh create 2020年6月17日下午1:55:01
 * @see
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    Page<UserRes> getPage(Page<UserRes> page, @Param("req") UserReqR req);

    List<UserRoleRes> getAllRole();

    List<UserRoleRes> getUserRole(Long userId);

    List<UserDeptRes> getAllDept();

    List<UserDeptRes> getUserDept(Long userId);

    List<UserExcelRes> getUserExcel(@Param("req") UserReqR req);

    // List<SysRole> getUserRoleList(@Param("userId") Long userId);

    Long getUserMinRoleLevel(Long userId);

    Long getMinRoleLevelByRoleIds(String[] roleIdsArr);
}
